// ----------------------------------------------------------------------------
// Classname:		CApp
// Created:			July 7, 2010
//
// Description:		This is the main class for the application / game.
//					Initialization, loading resources, and running the game
//					loop will all happen within this class.
// Notes:	This class is created as a Singleton to prevent more then one 
//			instance.  There can only be one instance of this class running.
// ----------------------------------------------------------------------------

#ifndef CAPP_H
#define CAPP_H

class CApp : public CSingleton <CApp>
{
public:
	CApp(void);
	~CApp(void);

	// Initialization Methods
	int Init(char *psAppConfig);
	void Gameloop(void);
	void Shutdown(void);

	bool IsActive(void) { return m_bActive; }
	void SetActive(bool state) { m_bActive = state; }

	bool IsRunning(void) { return m_bRunning; }

	CDisplay		*m_display;		// Display sub system
	CInputManager	*m_input;		// Input sub system

private:
	bool		m_bRunning;		// indicates if the game is running or not
	bool		m_bActive;		// indicates if this game is minimised or not

}; // class CApp : public CSingleton <CApp>

#endif